package com.shhic.hhplt.server.util;

import lombok.extern.slf4j.Slf4j;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * 加密工具
 * 
 * @author 张文硕
 * 
 */
@Slf4j
public class EncryUtil {
	/**
	 * MD5加密
	 * @param plainText	明文
	 * @param length 加密位数
	 */
	private static String encryWithMd5(String plainText,int length) {
		try {
			MessageDigest md = MessageDigest.getInstance("MD5");
			md.update(plainText.getBytes());
			byte b[] = md.digest();

			int i;

			StringBuffer buf = new StringBuffer("");
			for (int offset = 0; offset < b.length; offset++) {
				i = b[offset];
				if (i < 0)
					i += 256;
				if (i < 16)
					buf.append("0");
				buf.append(Integer.toHexString(i));
			}

			if(length == 32)return buf.toString();
			else if(length == 16)return buf.toString().substring(8, 24);
			else throw new NoSuchAlgorithmException("没有这种长度");
		} catch (NoSuchAlgorithmException e) {
			log.error(null,e);
			return plainText;
		}
	}
	
	/**
	 * 对外使用这个加密：16位长度的MD5
	 * @param plainText	明文
	 * @return	密文
	 */
	public static String encry(String plainText){
		return encryWithMd5(plainText,16);
	}
	
	public static void main(String[] args) {
		System.out.println(encry("000000"));
	}
}
